import {defineStore} from "pinia";
import {loginAPI} from "@/apis/user.js";
import {ref} from "vue";
import {userCartStore} from "@/stores/cartstore.js";
import {mergeCartAPI} from "@/apis/cart.js";

export const useUserStore = defineStore('user', () => {
    const cartStore = userCartStore()

    // 1. 定义管理用户数据的state
    const userInfo = ref({})
    // 2. 定义获取接口数据的action函数
    const getUserInfo = async ({account, password}) => {
        // 登录信息
        const res = await loginAPI({account, password})
        userInfo.value = res.result

    //     合并购物车的操作
       await  mergeCartAPI(cartStore.cartList.map(item => {
            // return一个对象

            return{
                skuId:item.skuId,
                selected:item.selected,
                count:item.count
            }
        }))

        cartStore.updateNewList()
    }
    // 退出时清除数据
    const clearUserInfo = () =>{
        userInfo.value = {}
    //     在执行清除存到本地购物车的数据
        cartStore.clearCart()
    }

    // 3. 以对象的格式把state和action return
    return {
        userInfo,
        getUserInfo,
        clearUserInfo
    }
}, {
    // 用于持久化pinia数据
    persist: true,
})